package tk.uodrad.apex.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import tk.uodrad.apex.project.pojo.dto.ChargeDetailsAddNewDTO;
import tk.uodrad.apex.project.pojo.dto.ChargeDetailsUpdateDTO;
import tk.uodrad.apex.project.pojo.dto.PeopleAddNewDTO;
import tk.uodrad.apex.project.pojo.dto.PeopleUpdateDTO;
import tk.uodrad.apex.project.pojo.entity.AssetEquipment;
import tk.uodrad.apex.project.pojo.entity.ChargeDetails;
import com.baomidou.mybatisplus.extension.service.IService;
import tk.uodrad.apex.project.pojo.vo.ChargeDetailsAmountVO;
import tk.uodrad.apex.project.pojo.vo.ChargeDetailsDashboardVO;
import tk.uodrad.apex.project.pojo.vo.ChargeDetailsListVO;
import tk.uodrad.apex.project.pojo.vo.PeopleListVO;

import java.util.List;

/**
* @author Administrator
* @description 针对表【charge_details_management】的数据库操作Service
* @createDate 2023-04-06 19:35:55
*/
public interface ChargeDetailsService extends IService<ChargeDetails> {
    /**
     * 添加单个收费明细
     * @param chargeDetailsAddNewDTO 添加收费明细DTO
     */
    void save(ChargeDetailsAddNewDTO chargeDetailsAddNewDTO);
    /**
     * 根据ID查询收费明细
     * @param id
     */
    ChargeDetails selectById(Long id);
    /**
     * 根据ID修改收费明细
     * @param chargeDetailsUpdateDTO 修改收费明细DTO
     */
    void updateById(ChargeDetailsUpdateDTO chargeDetailsUpdateDTO);
    /**
     * 分页查询收费明细列表
     * @param pageNum 第几页
     * @param pageSize 每页多少条数据
     * @param communityCode 小区编号
     * @return IPage<ChargeDetailsListVO> ChargeDetailsListVO分页对象
     */
    IPage<ChargeDetailsListVO> list(Integer pageNum, Integer pageSize, String communityCode);

    /**
     * 查询每个月实收金额、应收金额
     * @return 每个月实收金额、应收金额
     */
    List<ChargeDetailsAmountVO> listAmount();

    List<ChargeDetailsDashboardVO> listDashboard();
}
